
在 kintone 的外掛儲存介面中,我們可以用 kintone.plugin.app.setConfig 來儲存設定,儲存的設定只能是 { key: string } 的形式,如果要存非字串的格式進去,就會報錯,例如:
{
"key": [1, 2, 3],
"key2": [
{ name: 1 },
{ name: 2 }
]
}
這就麻煩了,所以會看到有些人會另開一個應用程式,專門放設定檔案用。
官網 上也寫明白,就是只能存字串,所以我們可以把 value 轉字串,使用 JSON.stringify(),要取出的時候再把它 JSON.parse()。
這樣就能解決大部分的問題,不過偶爾會出現變數。例如在紀錄中,從編輯畫面(edit.show)跳到 讀取畫面(detail.show)的時候,拿到的會是已經 parse 過後的值,需要特別注意。
如果上面的方式讓你覺得麻煩,可以用非官方的套件 kintone-use,使用 usePluginConfig 就可以自由儲存非字串的格式。
npm i kintone-use
安裝後將 usePluginConfig 的功能解構出來:
import { usePluginConfig } from 'kintone-use'
const { setPluginConfig, getPluginConfig, hasPluginConfig } = usePluginConfig()
在某些時間點調用 usePluginConfig 會拿不到資料,這是因為找不到 PLUGIN_ID,所以可以自己帶入:
const PLUGIN_ID = kintone.$PLUGIN_ID
usePluginConfig(PLUGIN_ID)
其他功能則是:
setPluginConfig:儲存外掛設定。getPluginConfig:取得外掛設定。hasPluginConfig:確認有沒有外掛設定,返回 true 或 false。套件支援 Typescript,像 getPluginConfig 這種函式可以帶個泛型進去:
const config = getPluginConfig<ConfigType>()
setPluginConfig 在成功之後則會回傳 success: boolean 的形式。
const res = await setPluginConfig({})
console.log(res.success) // true
希望大家都能快樂的儲存自己想要的格式。